home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
bbs
/
tg_os2.zip
/
PHONEV41.ZIP
/
TRIGCHG.ASM
< prev
next >
Wrap
Assembly Source File
|
1990-07-21
|
3KB
|
135 lines
PSEG SEGMENT PARA PUBLIC 'CODE'
BEGIN EQU $
ASSUME CS:PSEG, DS:PSEG, ES:PSEG, SS:NOTHING
ORG 100H
MAIN PROC NEAR
START EQU $
push cs
push cs
pop ds
pop es
MOV DX, OFFSET CFH
MOV AH, 09h
INT 21h
MOV DI, OFFSET ARGS
CALL GET_ARGS
INC DI
mov ax, word ptr [di]
mov word ptr [num], ax
mov cx, 2
mov si, di
call convert_to_binary_number
MOV DX, OFFSET DISAB
cmp bx, 0
JZ DO_IT
MOV DX, OFFSET TRIGMSG
DO_IT: PUSH DX
mov ax, 69h
mov cx, ax
INT 49h
CMP AX, 1
JNE NOT_INSTALLED
CMP BX, 2
JNE NOT_INSTALLED
CMP CX, 3
JNE NOT_INSTALLED
CMP DX, 4
JNE NOT_INSTALLED
POP DX
MOV AH, 09h
INT 21h
MOV AX, 4C00h
INT 21h
NOT_INSTALLED:
MOV DX, OFFSET NOT_IN
MOV AH, 09H
INT 21h
JMP BAD_EXIT
NOT_GOOD:
MOV DX, OFFSET BAD_MSG
MOV AH, 09h
INT 21h
BAD_EXIT:
MOV AX, 4C01h
INT 21h
MAIN ENDP
ten dw 10
ARGS DB 127 DUP(0)
BAD_MSG DB "
Invalid command line parameter
",13,10,13,10
DB "SYNTAX: TRIGCHG #",13,10,13,10
DB "# = a number from 0 to 99",13,10,13,10
DB "TRIGCHG 0 will DISABLE the phone line monitor",13,10,13,10,"$"
CFH DB 13,10,13,10,"
Trigger-point changer by "
DB "
CFH
Software
",13,10,13,10,"$"
disab DB "
The PHONE monitor has been disabled
",13,10,13,10,"$"
trigmsg DB "The PHONE monitor will reboot the system on ring number "
num DB " ",13,10,13,10,"$"
NOT_IN DB 13,10,"CFH's Phone monitor isn't installed!!!",13,10,"$"
; get_args
; gets the command line information from the psp
;ENTRY:
; di points to a 127 byte buffer into which you want the command line
; info copied.
;EXIT:
; cx contains the number of characters on the command line
; di points to the "buffer" area into which the info was copied
; all other registers previous values ARE preserved (i.e. not destroyed)
get_args proc
push ax
push bx
push di
push si
push ds
mov ah, 62h
int 21h
push bx
pop ds
mov si, 80h
lodsb
xor ch, ch
mov cl, al
push cx
rep movsb
pop cx
pop ds
pop si
pop di
pop bx
pop ax
ret
get_args endp
convert_to_binary_number proc
xor bx, bx
@@:
xor ax, ax
lodsb
cmp al, 57
jg non_numeric
sub ax, 48
jl non_numeric
push ax
mov ax, bx
mul ten
mov bx, ax
pop ax
add bx, ax
space: loop @b
non_numeric:
ret
convert_to_binary_number endp
PRG_END EQU $
PSEG ENDS
END MAIN